package process;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import core.Client;

/**
 * Classe qui gère les clients
 */
@Stateless
public class ManageClient {
    @PersistenceContext
    EntityManager em; // Entity Manager

    /**
     * Permet d'ajouter un client via un formulaire
     * @return true si l'ajout s'est bien déroulé
     */
    public boolean addClient (String prenom, String nom) {
        try {
            // Ajout du client en db
            em.persist(new Client(prenom, nom));
        } catch (Exception e) {
            return false;
        }

        return true;
    }

    /**
     * Renvoie le client spécifié par id
     */
    public Client getClient (int id) {
        return (Client)em.find(Client.class, id);
    }

    /**
     * Retourne la liste des clients
     */
    @SuppressWarnings("unchecked")
    public List<Client> getClients () {
        Query q = em.createQuery("SELECT c FROM Client c");

        if (q == null)
            return null;
        else
            return (List<Client>)q.getResultList();
    }
}
